package top.malegod.mapper;

import org.apache.ibatis.annotations.Param;
import top.malegod.model.Category;
import top.malegod.model.Comments;
import top.malegod.model.Community;
import top.malegod.model.Integral;
import top.malegod.model.Manage;
import top.malegod.model.Order;
import top.malegod.model.Rank;
import top.malegod.model.User;

import java.util.List;

/**
 * Create by IntelliJ IDEA
 *
 * @author: AbelEthan
 * @date-Time: 2018/5/29 14:31
 * @description: 管理员数据库操作接口
 */
public interface ManageMapper {

  /**
   * 用户数
   * @return
   */
  int findUsersCount();

  /**
   * 订单数
   * @return
   */
  int findOrdersCount();

  /**
   * 社区数
   * @return
   */
  int findCommunityCount();

  /**
   * 评论数
   * @return
   */
  int findCommentsCount();

  /**
   * 查看管理员是否存在
   * @param username
   * @return
   */
  int findManageCountByUsername(String username);

  /**
   * 管理员登录
   * @param username
   * @param password
   * @return
   */
  Manage findManageByUsernameAndPassword(@Param("username") String username,
      @Param("password") String password);

  /**
   * 获取所有用户信息
   * @return
   */
  List<User> findAllUsers();

  /**
   * 获取所有恢复用户
   * @return
   */
  List<User> findRestoreAllUsers();

  /**
   * 删除用户
   * @param id
   * @return
   */
  int deleteUser(String id);

  /**
   * 恢复用户
   * @param id
   * @return
   */
  int restoreUser(String id);

  /**
   * 获取所有订单
   * @return
   */
  List<Order> findAllOrders();


  /**
   * 删除订单
   * @param id
   * @return
   */
  int deleteOrder(String id);

  /**
   * 获取社区内容
   * @return
   */
  List<Community> findCommunityList();

  /**
   * 搜素社区
   * @param content
   * @return
   */
  List<Community> searchCommunityByContent(@Param("content") String content);

  /**
   * 删除社区分享
   * @param id
   * @return
   */
  int deleteCommunity(String id);


  /**
   * 获取评论列表
   * @return
   */
  List<Comments> findCommentsList();

  /**
   * 删除评论
   * @param id
   * @return
   */
  int deleteComments(String id);

  /**
   * 获取分类列表
   * @return
   */
  List<Category> findCategoryList();

  /**
   * 增加分类
   * @param name
   * @return
   */
  int addCategory(@Param("name") String name);

  /**
   * 修改分类
   * @param id
   * @param name
   * @return
   */
  int updateCategory(@Param("id") Integer id, @Param("name") String name);

  /**
   *  删除分类
   * @param id
   * @return
   */
  int deleteCategory(Integer id);

  /**
   * 获取积分列表
   * @return
   */
  List<Integral> findIntegralList();

  /**
   * 修改积分
   * @param count
   * @param userId
   * @return
   */
  int updateIntegral(@Param("count") Double count, @Param("userId") String userId);

  /**
   * 获取等级列表
   * @return
   */
  List<Rank> findRankList();

  /**
   * 修改等级名
   * @param id
   * @param name
   * @return
   */
  int updateRank(@Param("id") Integer id,@Param("name") String name);

  /**
   * 删除等级
   * @param id
   * @return
   */
  int deleteRank(Integer id);

  /**
   * 增加等级
   * @param name
   * @return
   */
  int addRank(@Param("name") String name);


}
